home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 June / PersonalComputerWorld-June2009-CoverdiscCD.iso / Software / Freeware / Adobe AIR 1.5.1 / AdobeAIRInstaller.exe / setup.swf / scripts / mx / controls / Text.as < prev    next >
Encoding:
Text File  |  2009-02-12  |  5.1 KB  |  164 lines

  1. package mx.controls
  2. {
  3.    import mx.core.UITextField;
  4.    import mx.core.mx_internal;
  5.    import mx.events.FlexEvent;
  6.    
  7.    use namespace mx_internal;
  8.    
  9.    public class Text extends Label
  10.    {
  11.       mx_internal static const VERSION:String = "3.0.0.0";
  12.       
  13.       private var widthChanged:Boolean = true;
  14.       
  15.       private var lastUnscaledWidth:Number = NaN;
  16.       
  17.       public function Text()
  18.       {
  19.          super();
  20.          selectable = true;
  21.          truncateToFit = false;
  22.          addEventListener(FlexEvent.UPDATE_COMPLETE,updateCompleteHandler);
  23.       }
  24.       
  25.       private function measureUsingWidth(param1:Number) : void
  26.       {
  27.          var _loc2_:Number = NaN;
  28.          var _loc3_:Number = NaN;
  29.          var _loc5_:Number = NaN;
  30.          var _loc6_:Boolean = false;
  31.          _loc2_ = getStyle("paddingLeft");
  32.          _loc3_ = getStyle("paddingTop");
  33.          var _loc4_:Number = getStyle("paddingRight");
  34.          _loc5_ = getStyle("paddingBottom");
  35.          textField.validateNow();
  36.          textField.autoSize = "left";
  37.          if(!isNaN(param1))
  38.          {
  39.             textField.width = param1 - _loc2_ - _loc4_;
  40.             measuredWidth = Math.ceil(textField.textWidth) + UITextField.mx_internal::TEXT_WIDTH_PADDING;
  41.             measuredHeight = Math.ceil(textField.textHeight) + UITextField.mx_internal::TEXT_HEIGHT_PADDING;
  42.          }
  43.          else
  44.          {
  45.             _loc6_ = textField.wordWrap;
  46.             textField.wordWrap = false;
  47.             measuredWidth = Math.ceil(textField.textWidth) + UITextField.mx_internal::TEXT_WIDTH_PADDING;
  48.             measuredHeight = Math.ceil(textField.textHeight) + UITextField.mx_internal::TEXT_HEIGHT_PADDING;
  49.             textField.wordWrap = _loc6_;
  50.          }
  51.          textField.autoSize = "none";
  52.          measuredWidth += _loc2_ + _loc4_;
  53.          measuredHeight += _loc3_ + _loc5_;
  54.          if(isNaN(explicitWidth))
  55.          {
  56.             measuredMinWidth = DEFAULT_MEASURED_MIN_WIDTH;
  57.             measuredMinHeight = DEFAULT_MEASURED_MIN_HEIGHT;
  58.          }
  59.          else
  60.          {
  61.             measuredMinWidth = measuredWidth;
  62.             measuredMinHeight = measuredHeight;
  63.          }
  64.       }
  65.       
  66.       override public function set percentWidth(param1:Number) : void
  67.       {
  68.          if(param1 != percentWidth)
  69.          {
  70.             widthChanged = true;
  71.             invalidateProperties();
  72.             invalidateSize();
  73.          }
  74.          super.percentWidth = param1;
  75.       }
  76.       
  77.       override public function set explicitWidth(param1:Number) : void
  78.       {
  79.          if(param1 != explicitWidth)
  80.          {
  81.             widthChanged = true;
  82.             invalidateProperties();
  83.             invalidateSize();
  84.          }
  85.          super.explicitWidth = param1;
  86.       }
  87.       
  88.       private function updateCompleteHandler(param1:FlexEvent) : void
  89.       {
  90.          lastUnscaledWidth = NaN;
  91.       }
  92.       
  93.       override protected function childrenCreated() : void
  94.       {
  95.          super.childrenCreated();
  96.          textField.wordWrap = true;
  97.          textField.multiline = true;
  98.          textField.mouseWheelEnabled = false;
  99.       }
  100.       
  101.       override protected function commitProperties() : void
  102.       {
  103.          super.commitProperties();
  104.          if(widthChanged)
  105.          {
  106.             textField.wordWrap = !isNaN(percentWidth) || !isNaN(explicitWidth);
  107.             widthChanged = false;
  108.          }
  109.       }
  110.       
  111.       override protected function updateDisplayList(param1:Number, param2:Number) : void
  112.       {
  113.          var _loc7_:Boolean = false;
  114.          if(isSpecialCase())
  115.          {
  116.             _loc7_ = isNaN(lastUnscaledWidth) || lastUnscaledWidth != param1;
  117.             lastUnscaledWidth = param1;
  118.             if(_loc7_)
  119.             {
  120.                invalidateSize();
  121.                return;
  122.             }
  123.          }
  124.          var _loc3_:Number = getStyle("paddingLeft");
  125.          var _loc4_:Number = getStyle("paddingTop");
  126.          var _loc5_:Number = getStyle("paddingRight");
  127.          var _loc6_:Number = getStyle("paddingBottom");
  128.          textField.setActualSize(param1 - _loc3_ - _loc5_,param2 - _loc4_ - _loc6_);
  129.          textField.x = _loc3_;
  130.          textField.y = _loc4_;
  131.          if(Math.floor(width) < Math.floor(measuredWidth))
  132.          {
  133.             textField.wordWrap = true;
  134.          }
  135.       }
  136.       
  137.       override protected function measure() : void
  138.       {
  139.          if(isSpecialCase())
  140.          {
  141.             if(!isNaN(lastUnscaledWidth))
  142.             {
  143.                measureUsingWidth(lastUnscaledWidth);
  144.             }
  145.             else
  146.             {
  147.                measuredWidth = 0;
  148.                measuredHeight = 0;
  149.             }
  150.             return;
  151.          }
  152.          measureUsingWidth(explicitWidth);
  153.       }
  154.       
  155.       private function isSpecialCase() : Boolean
  156.       {
  157.          var _loc1_:Number = getStyle("left");
  158.          var _loc2_:Number = getStyle("right");
  159.          return (!isNaN(percentWidth) || !isNaN(_loc1_) && !isNaN(_loc2_)) && isNaN(explicitHeight) && isNaN(percentHeight);
  160.       }
  161.    }
  162. }
  163.  
  164.